import Vue from "vue";
import store from "@/store";

/**
 * Action 权限指令
 * 指令用法：
 *  - 在需要控制 action 级别权限的组件上使用 v-action='value' , 如下：
 *    <i-button v-action="查看" >查看</a-button>
 *    <a-button v-action="添加备注">添加备注</a-button>
 *    <a v-action:edit @click="edit(record)">修改</a>
 *
 *  - 当前用户没有权限时，组件上使用了该指令则会被隐藏
 *  - 当后台权限跟 pro 提供的模式不同时，只需要针对这里的权限过滤进行修改即可
 *
 */
const action = Vue.directive("action", {
  inserted: function(el, binding, vnode) {
    const roles = store.state.user.roles;
    const value = binding.value;
    console.log('value====',value);
    
    if (value === "添加备注" && !roles.includes(value)) {
      el.disabled = true;
      return
    }
    //需要的权限不存在
    if (!roles.includes(value)) {
      (el.parentNode && el.parentNode.removeChild(el)) ||
        (el.style.display = "none");
    }
  }
});

export default action;
